package cn.schoolwow.quickdao.domain.provider;

import cn.schoolwow.quickdao.domain.database.parent.DatabaseType;

/**
 * 数据库提供者
 */
public interface DatabaseProvider {
    /**
     * 数据库类型名称
     */
    String name();

    /**
     * 数据库类型名称
     */
    DatabaseType getDatabaseType();

    /**
     * 返回注释语句
     */
    String comment(String comment);

    /**
     * 转义表,列等
     */
    String escape(String value);

    /**
     * 是否返回自增id
     */
    boolean returnGeneratedKeys();

    /**
     * 转换java数据类型为数据库类型
     */
    String convertJavaTypeToColumnType(String javaType);

    /**
     * 转换数据库类型为java数据类型
     */
    String convertColumnTypeToJavaType(String columnType);

}
